//package com.xdtech;
//
//import java.awt.Toolkit;
//import java.awt.datatransfer.Clipboard;
//import java.awt.datatransfer.StringSelection;
//import java.net.BindException;
//
//import org.apache.commons.logging.Log;
//import org.apache.commons.logging.LogFactory;
//import org.eclipse.jetty.server.Connector;
//import org.eclipse.jetty.server.Server;
//import org.eclipse.jetty.server.nio.SelectChannelConnector;
//import org.eclipse.jetty.webapp.WebAppContext;
//
///*
// * Copyright 2013-2015 the original author or authors.
// * Licensed under the Apache License, Version 2.0 (the "License");
// * you may not use this file except in compliance with the License.
// * You may obtain a copy of the License at
// *
// *      http://www.apache.org/licenses/LICENSE-2.0
// *
// * Unless required by applicable law or agreed to in writing, software
// * distributed under the License is distributed on an "AS IS" BASIS,
// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// * See the License for the specific language governing permissions and
// * limitations under the License.
// */
//
///**
// * 
// * @author max.zheng
// * @create 2016-3-27下午8:06:42
// * @since 1.0
// * @see
// */
//public class JmaxServer {
//	private static Log log = LogFactory.getLog(JmaxServer.class);
//
//	/**
//	 * 监听端口, 缺省为80
//	 */
//	private int port = 80;
//
//	/**
//	 * 应用上下文, 缺省为/(无上下文)
//	 */
//	private String webContext = "/";
//
//	public JmaxServer() {
//
//	}
//
//	/**
//	 * 构造Server实例
//	 * 
//	 * @param pWebContext
//	 * @param pPort
//	 */
//	public JmaxServer(String pWebContext, int pPort) {
//		setWebContext(pWebContext);
//		setPort(pPort);
//	}
//
//	public void start() throws Exception {
//		long start = System.currentTimeMillis();
//		final String webRoot = System.getProperty("user.dir") + "/src/main/webapp";
//		Server server = new Server();
//		// 设置在JVM退出时关闭Jetty的钩子。
//		server.setStopAtShutdown(true);
//		SelectChannelConnector connector = new SelectChannelConnector();
//		// disable nio cache to unlock the css and js file when running
//		connector.setUseDirectBuffers(false);
//		// 解决Windows下重复启动Jetty居然不报告端口冲突的问题.
//		connector.setReuseAddress(false);
//		connector.setPort(port);
//		server.setConnectors(new Connector[] { connector });
//		WebAppContext context = new WebAppContext();
//		context.setResourceBase(webRoot);
//		context.setContextPath(webContext);
//		context.setParentLoaderPriority(true);
//		// 针对jetty使用jstl的特殊设置，扫描tld文件。指定哪些jar中可能含有tld。
//		context.setAttribute(
//				"org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern",
//				".*/.*jsp-api-[^/]*\\.jar$|.*/.*jsp-[^/]*\\.jar$|.*/.*taglibs[^/]*\\.jar$|.*/.*jstl[^/]*\\.jar$");
//		server.setHandler(context);
//		boolean isSuccess = true;
//		try {
//			server.start();
//		} catch (BindException e) {
//			isSuccess = false;
//			log.error("启动报错",e);
//		} catch (Exception e) {
//			isSuccess = false;
//			log.error("启动报错",e);
//		} finally {
//			// 此Key在@see WebApplicationContextExporterListener中被赋值
//			String flag = "true";//;System.getProperty(AOSCons.WEBAPPCXT_IS_SUCCESS_KEY);
//			String msg = "Jmax启动成功";
//			String supportMsg = "Jmax项目主页 >>http://git.oschina.net/358744287/jmax";
//			if (!isSuccess || flag == null) {
//				msg = "Jmax启动失败";
//				log.error(msg);
//				msg = msg + supportMsg;
//				System.out.println(msg);
//				System.exit(0);
//			} else {
//				Toolkit toolkit = Toolkit.getDefaultToolkit();
//				Clipboard clipboard = toolkit.getSystemClipboard();
//				webContext = webContext.equals("/") ? "" : webContext;
//				String webUrl = "http://localhost";
//				if (port == 80) {
//					webUrl = webUrl + webContext;
//				} else {
//					webUrl = webUrl + ":" + port + webContext;
//				}
//				StringSelection stringSel = new StringSelection(webUrl);
//				clipboard.setContents(stringSel, null);
//				long alltime = System.currentTimeMillis() - start;
//				msg = msg + "[" + alltime + "毫秒]" + " >> " + webUrl;
//				log.info(msg);
//				log.info(supportMsg);
//				server.join(); // 线程阻塞
//			}
//		}
//	}
//
//	public int getPort() {
//		return port;
//	}
//
//	/**
//	 * 监听端口, 缺省为80
//	 * 
//	 * @param port
//	 */
//	public void setPort(int port) {
//		this.port = port;
//	}
//
//	public String getWebContext() {
//		return webContext;
//	}
//
//	/**
//	 * 应用上下文, 缺省为/(无上下文)
//	 * 
//	 * @param webContext
//	 */
//	public void setWebContext(String webContext) {
//		this.webContext = webContext;
//	}
//	
//	
//	public static void main(String[] args) throws Exception {
//		new JmaxServer("/",80).start();
//	}
//}
